//
// Created by inter on 2019-11-07.
//

#ifndef AUTHENTICATION_AES_H
#define AUTHENTICATION_AES_H

#include <string>

using namespace std;

class AES {

public:

    static int calculateOutputLength(unsigned int input_size, bool is_encrypt);

    static bool cbc256Encrypt(unsigned char* input_buf, unsigned int input_size, unsigned char* iv, unsigned char* key, unsigned char* output_buf, unsigned int output_size);

    static bool cbc256Decrypt(unsigned char* input_buf, unsigned int input_size, unsigned char* iv, unsigned char* key, unsigned char* output_buf, unsigned int output_size);

    static bool cbc256EncryptFile(string input_file, string output_file, unsigned char* iv, unsigned char* key);

    static bool cbc256DecryptFile(string input_file, string output_file, unsigned char* iv, unsigned char* key);

};


#endif //AUTHENTICATION_AES_H
